DODec - Der Directory Opus 4.0 Decrypter -------------------------------------------- copyright (c) 1993 bei Markt & Technik Verlag AG geschrieben von Thomas Lopatic ----------------------------------------------------------------- Directory Opus bietet in der Version 4.0 eine Option zum Verschlüsseln wichtiger Daten. Der verwendete Algorithmus weist jedoch einige offensichtliche Schwächen auf. DODec bedient sich einiger dieser Schwächen und rekonstruiert aus einer verschlüsselten Datei die ursprünglichen Daten. Damit die Korrektheit der Entschlüsselung eindeutig überprüft werden kann, muß DODec dazu die ersten vier Byte der unverschlüsselten Datei kennen. In der Regel verursacht das jedoch keine Probleme, da viele Files, z. B. IFF-Dateien, stets eine Standardkennung am Dateibeginn besitzen. Directory Opus errechnet aus dem eingegebenen Schlüsselwort einen 32-Bit-Wert. Es existieren also maximal 2 ^ 32 verschiedene Schlüssel, was für eine sichere Verschlüsselung absolut zu wenig ist. Darüber hinaus treten bei der Umrechnung der Schlüsselphrase in den 32-Bit-Wert einige Werte wesentlich häufiger auf als andere. DODec benutzt den einfachsten aller Angriffe, den "Brute Force Attack". Das Programm probiert dabei einfach alle möglichen Schlüssel aus dem 32-Bit-Schlüsselraum durch, beginnend mit den wahrscheinlichsten Werten. Dieses Verfahren benötigt auf einem 7-MHz-Amiga im absolut ungünstigsten Fall vier Tage. Aufgrund der extrem ungleich verteilten 32-Bit-Schlüssel ist es jedoch sehr wahrscheinlich, daß die Lösung innerhalb weniger Minuten oder Stunden gefunden wird. Das Verfahren ließe sich noch wesentlich beschleunigen, da der verwendete Algorithmus noch einige andere Schwächen besitzt. DODec möchte jedoch lediglich zeigen, daß ein Angriff auf das verwendete Verfahren möglich und durchführbar ist. Um mit DODec zu arbeiten, muß sich "dodec.def" entweder im aktiven Verzeichnis oder in "s:" befinden. Diese Datei enthält die ersten vier Byte einiger Standard-Dateitypen wie beispielsweise IFF-Dateien ("FORM"). Da die Datei in reinem ASCII vorliegt, sind eigene Erweiterungen kein Problem. Es ist lediglich darauf zu achten, daß der Name des Dateityps keine Leerzeichen beinhaltet. Die darauf folgenden vier dezimalen Zahlen sind die ersten vier Byte des bezeichneten Dateityps. DODec läuft ab Betriebsystemversion 2.0. Nach dem Programmstart öffnet DODec ein Fenster mit einer aus "dodec.def" eingelesenen Liste an Standard-Dateitypen und verschiedenen Knöpfen. "Quelle" erlaubt dem Anwender, den Dateinamen der zu entschlüsselnden Datei (= Quelldatei) festzulegen. Der komplette Dateipfad wird daraufhin neben "Quelle:" angezeigt. "Ziel" gibt den Dateinamen der entschlüsselten Datei an, der Pfad wird dann neben "Ziel:" angegeben. Die vier Zahlen-Gadgets enthalten die vier ersten Byte der unverschlüsselten Datei. Tragen Sie hier ihre eigenen Werte ein, oder wählen Sie einfach eine der Vorgaben aus der Liste der Standard-Dateitypen. Der "Start"-Knopf startet die Entschlüsselung. DODec liest dann die ersten vier Byte der verschlüsselten Datei ein und versucht diese zu entschlüsseln. Der Vergleich mit den vier Byte aus den Zahlen-Gadgets zeigt dann, ob ein Entschlüsselungsversuch erfolgreich war. Hat DODec den korrekten Schlüssel gefunden, speichert es die entschlüsselte Datei unter dem bei "Ziel:" angezeigten Namen plus einer neun Zeichen langen Erweiterung. Die Erweiterung stellt dabei den 32-Bit-Wert des verwendeten Schlüssels hexadekadisch dar. Die Entschlüsselung ist in Runden unterteilt. Es existieren 65536 Runden, die im schlimmsten Fall alle durchlaufen werden müssen. Im Test sind jedoch nie Schlüssel aufgetreten, die mehr als 4096 Runden benötigten. So ergab sich beim Testen auf einem 7-MHz-Amiga eine maximale Wartezeit von rund sechs Stunden pro Entschlüsselung. Der "Stop"-Knopf bricht den Entschlüsselungsvorgang nach Beendigung der aktuellen Runde ab. Beachten Sie, daß auch das Programmfenster erst jeweils nach Beendigung einer kompletten Runde wieder neu aufgebaut wird. Da DODec prinzipbedingt mehr als einen Schlüssel finden kann, wird die Suche nicht nach Auffinden des ersten Schlüsselwertes abgebrochen. Findet das Programm einen möglichen Schlüssel, so sollten sie das entschlüsselte File erst von Hand auf Korrektheit überprüfen. Wurde es korrekt entschlüsselt, kann der Suchvorgang abgebrochen werden. Im Test trat jedoch stets nur ein Schlüssel auf, so daß die Suche nach weiteren Schlüsseln lediglich eine Vorsichtsmaßnahme ist. Möchte jemand das Programm weiter verbessern, Fehler (?) entfernen, oder den Algorithmus einer weitergehenden Cryptoanalyse unterziehen, steht ihm im Unterverzeichnis "source" der komplette DODec-Quelltext in C (Aztec 5.0) und Assembler zur Verfügung. -----------------------------------------------------------------